/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.customer.core.repository.entity;

import com.gitee.peigenlpy.actable.annotation.Column;
import com.gitee.peigenlpy.actable.annotation.Index;
import com.gitee.peigenlpy.actable.annotation.Table;
import com.gitee.peigenlpy.actable.constants.MySqlCharsetConstant;
import com.gitee.peigenlpy.actable.constants.MySqlEngineConstant;
import com.gitee.peigenlpy.actable.constants.MySqlTypeConstant;
import info.peigen.hotpot.component.data.repository.beetlsql.entity.AbstractCreateTimeEntity;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;

import java.util.Date;

/**
 * <b>(CustomerAuthenticationLogEntity)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/8/18
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
@Table(name = "customer_authentication_log", comment = "客户实名认证日志表", charset = MySqlCharsetConstant.UTF8MB4, engine = MySqlEngineConstant.InnoDB)
@org.beetl.sql.annotation.entity.Table(name = "customer_authentication_log")
public class CustomerAuthenticationLogEntity extends AbstractCreateTimeEntity {
    @Column(name = "customer_id", type = MySqlTypeConstant.VARCHAR, length = 30, isNull = false, comment = "customerId")
    @Index(value = "customerId", columns = "customer_id")
    @org.beetl.sql.annotation.entity.Column("customer_id")
    String customerId;

    @Column(name = "memo", type = MySqlTypeConstant.VARCHAR, length = 200, comment = "备注")
    @org.beetl.sql.annotation.entity.Column("memo")
    String memo;

    @Column(name = "bops_operator_id", type = MySqlTypeConstant.VARCHAR, length = 64, isNull = false, comment = "审核客户ID")
    @org.beetl.sql.annotation.entity.Column("bops_operator_id")
    String bopsOperatorId;

    @Column(name = "bops_operator_name", type = MySqlTypeConstant.VARCHAR, length = 64, isNull = false, comment = "审核客户名")
    @org.beetl.sql.annotation.entity.Column("bops_operator_name")
    String bopsOperatorName;

    @Column(name = "bops_audit_time", type = MySqlTypeConstant.TIMESTAMP, comment = "认证时间")
    @org.beetl.sql.annotation.entity.Column("bops_audit_time")
    Date bopsAuditTime;

    @Column(name = "pre_status", type = MySqlTypeConstant.VARCHAR, length = 32, comment = "认证前状态")
    @org.beetl.sql.annotation.entity.Column("pre_status")
    String preStatus;

    @Column(name = "post_status", type = MySqlTypeConstant.VARCHAR, length = 32, comment = "认证后状态")
    @org.beetl.sql.annotation.entity.Column("post_status")
    String postStatus;

    @Column(name = "customer_cert_subject", type = MySqlTypeConstant.VARCHAR, length = 32, comment = "认证类型")
    @org.beetl.sql.annotation.entity.Column("customer_cert_subject")
    String customerCertSubject;

    @Column(name = "authentication_info", type = MySqlTypeConstant.VARCHAR, length = 1024, comment = "认证信息")
    @org.beetl.sql.annotation.entity.Column("authentication_info")
    String authenticationInfo;
}